{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Python机器学习项目的模板\n",
    "\n",
    "## 1. 定义问题\n",
    "### a) 导入类库\n",
    "### b) 导入数据集\n",
    "\n",
    "## 2. 理解数据\n",
    "### a) 描述性统计\n",
    "### b) 数据可视化\n",
    "\n",
    "## 3. 数据准备\n",
    "### a) 数据清洗\n",
    "### b) 特征选择\n",
    "### c) 数据转换\n",
    "\n",
    "## 4. 评估算法\n",
    "### a) 分离数据集\n",
    "### b) 定义模型评估标准\n",
    "### c) 算法审查\n",
    "### d) 算法比较\n",
    "\n",
    "## 5. 优化模型\n",
    "### a) 算法调参\n",
    "### b) 集成算法\n",
    "\n",
    "## 6. 结果部署\n",
    "### a) 预测评估数据集\n",
    "### b) 利用整个数据集生成模型\n",
    "### c) 序列化模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1）a) 导入类库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from numpy import arange\n",
    "\n",
    "from matplotlib import pyplot\n",
    "\n",
    "import pandas as pd          #  pandas 0.18.1 documentation\n",
    "from pandas import read_csv\n",
    "from pandas import  set_option\n",
    "from pandas.plotting import scatter_matrix\n",
    "\n",
    "import sklearn\n",
    "from sklearn import datasets\n",
    "from sklearn.preprocessing import StandardScaler        # 特征缩放\n",
    "from sklearn.model_selection import train_test_split    # 训练集 测试集\n",
    "from sklearn.model_selection import KFold               # K折交叉验证\n",
    "from sklearn.model_selection import cross_val_score \n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.linear_model import LinearRegression      # LR\n",
    "from sklearn.linear_model import Lasso                 # LASSO\n",
    "from sklearn.linear_model import ElasticNet            # EN\n",
    "from sklearn.tree import DecisionTreeRegressor         # DTR\n",
    "from sklearn.neighbors import KNeighborsRegressor      # KNR\n",
    "from sklearn.svm import SVR \n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "from sklearn.ensemble import ExtraTreesRegressor\n",
    "from sklearn.ensemble import AdaBoostRegressor\n",
    "from sklearn.metrics import mean_squared_error"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1）b) 导入数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(506, 13)\n",
      "(506,)\n"
     ]
    }
   ],
   "source": [
    "# 可以直接通过datasets导入数据集\n",
    "\n",
    "boston = datasets.load_boston()  # 导入数据集\n",
    "x = boston.data    # 获得其特征向量\n",
    "y = boston.target  # 获得样本label\n",
    "\n",
    "print (x.shape)    # boston.data.shape\n",
    "print (y.shape)\n",
    "\n",
    "# x.head() 只有pandas的DataFrame有head()，tail()方法; 'numpy.ndarray' object has no attribute 'head'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "#  为了方便将数据保存下来，导入\n",
    "\n",
    "filename = 'G:/boston.csv '   # G:/ 或者 G:\\\\\n",
    "names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS',\n",
    "         'RAD', 'TAX', 'PRTATIO', 'B', 'LSTAT', 'MEDV']\n",
    "data = pd.read_csv(filename, names=names, delim_whitespace=True)    # 导入为DataFrame对象"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2) a) 描述性统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PRTATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "      <th>MEDV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.00632</td>\n",
       "      <td>18.0</td>\n",
       "      <td>2.31</td>\n",
       "      <td>0</td>\n",
       "      <td>0.538</td>\n",
       "      <td>6.575</td>\n",
       "      <td>65.2</td>\n",
       "      <td>4.0900</td>\n",
       "      <td>1</td>\n",
       "      <td>296.0</td>\n",
       "      <td>15.3</td>\n",
       "      <td>396.90</td>\n",
       "      <td>4.98</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.02731</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>6.421</td>\n",
       "      <td>78.9</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>396.90</td>\n",
       "      <td>9.14</td>\n",
       "      <td>21.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.02729</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>7.185</td>\n",
       "      <td>61.1</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>392.83</td>\n",
       "      <td>4.03</td>\n",
       "      <td>34.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.03237</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>6.998</td>\n",
       "      <td>45.8</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>394.63</td>\n",
       "      <td>2.94</td>\n",
       "      <td>33.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.06905</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>7.147</td>\n",
       "      <td>54.2</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>396.90</td>\n",
       "      <td>5.33</td>\n",
       "      <td>36.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD    TAX  \\\n",
       "0  0.00632  18.0   2.31     0  0.538  6.575  65.2  4.0900    1  296.0   \n",
       "1  0.02731   0.0   7.07     0  0.469  6.421  78.9  4.9671    2  242.0   \n",
       "2  0.02729   0.0   7.07     0  0.469  7.185  61.1  4.9671    2  242.0   \n",
       "3  0.03237   0.0   2.18     0  0.458  6.998  45.8  6.0622    3  222.0   \n",
       "4  0.06905   0.0   2.18     0  0.458  7.147  54.2  6.0622    3  222.0   \n",
       "\n",
       "   PRTATIO       B  LSTAT  MEDV  \n",
       "0     15.3  396.90   4.98  24.0  \n",
       "1     17.8  396.90   9.14  21.6  \n",
       "2     17.8  392.83   4.03  34.7  \n",
       "3     18.7  394.63   2.94  33.4  \n",
       "4     18.7  396.90   5.33  36.2  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD    TAX  PRTATIO       B  LSTAT  MEDV\n",
      "0  0.00632  18.0   2.31     0  0.538  6.575  65.2  4.0900    1  296.0     15.3  396.90   4.98  24.0\n",
      "1  0.02731   0.0   7.07     0  0.469  6.421  78.9  4.9671    2  242.0     17.8  396.90   9.14  21.6\n",
      "2  0.02729   0.0   7.07     0  0.469  7.185  61.1  4.9671    2  242.0     17.8  392.83   4.03  34.7\n",
      "3  0.03237   0.0   2.18     0  0.458  6.998  45.8  6.0622    3  222.0     18.7  394.63   2.94  33.4\n",
      "4  0.06905   0.0   2.18     0  0.458  7.147  54.2  6.0622    3  222.0     18.7  396.90   5.33  36.2\n",
      "5  0.02985   0.0   2.18     0  0.458  6.430  58.7  6.0622    3  222.0     18.7  394.12   5.21  28.7\n",
      "6  0.08829  12.5   7.87     0  0.524  6.012  66.6  5.5605    5  311.0     15.2  395.60  12.43  22.9\n",
      "7  0.14455  12.5   7.87     0  0.524  6.172  96.1  5.9505    5  311.0     15.2  396.90  19.15  27.1\n"
     ]
    }
   ],
   "source": [
    "set_option('display.width', 120)  # 指定输出的宽度为120个字符，以确保将所有特征属性值显示在一行内\n",
    "print(data.head(8))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(506, 14)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX',\n",
       "       'PRTATIO', 'B', 'LSTAT', 'MEDV'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CRIM       float64\n",
       "ZN         float64\n",
       "INDUS      float64\n",
       "CHAS         int64\n",
       "NOX        float64\n",
       "RM         float64\n",
       "AGE        float64\n",
       "DIS        float64\n",
       "RAD          int64\n",
       "TAX        float64\n",
       "PRTATIO    float64\n",
       "B          float64\n",
       "LSTAT      float64\n",
       "MEDV       float64\n",
       "dtype: object"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PRTATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "      <th>MEDV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "      <td>506.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.613524</td>\n",
       "      <td>11.363636</td>\n",
       "      <td>11.136779</td>\n",
       "      <td>0.069170</td>\n",
       "      <td>0.554695</td>\n",
       "      <td>6.284634</td>\n",
       "      <td>68.574901</td>\n",
       "      <td>3.795043</td>\n",
       "      <td>9.549407</td>\n",
       "      <td>408.237154</td>\n",
       "      <td>18.455534</td>\n",
       "      <td>356.674032</td>\n",
       "      <td>12.653063</td>\n",
       "      <td>22.532806</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>8.601545</td>\n",
       "      <td>23.322453</td>\n",
       "      <td>6.860353</td>\n",
       "      <td>0.253994</td>\n",
       "      <td>0.115878</td>\n",
       "      <td>0.702617</td>\n",
       "      <td>28.148861</td>\n",
       "      <td>2.105710</td>\n",
       "      <td>8.707259</td>\n",
       "      <td>168.537116</td>\n",
       "      <td>2.164946</td>\n",
       "      <td>91.294864</td>\n",
       "      <td>7.141062</td>\n",
       "      <td>9.197104</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.006320</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.460000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.385000</td>\n",
       "      <td>3.561000</td>\n",
       "      <td>2.900000</td>\n",
       "      <td>1.129600</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>187.000000</td>\n",
       "      <td>12.600000</td>\n",
       "      <td>0.320000</td>\n",
       "      <td>1.730000</td>\n",
       "      <td>5.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.082045</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.190000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.449000</td>\n",
       "      <td>5.885500</td>\n",
       "      <td>45.025000</td>\n",
       "      <td>2.100175</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>279.000000</td>\n",
       "      <td>17.400000</td>\n",
       "      <td>375.377500</td>\n",
       "      <td>6.950000</td>\n",
       "      <td>17.025000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.256510</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>9.690000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.538000</td>\n",
       "      <td>6.208500</td>\n",
       "      <td>77.500000</td>\n",
       "      <td>3.207450</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>330.000000</td>\n",
       "      <td>19.050000</td>\n",
       "      <td>391.440000</td>\n",
       "      <td>11.360000</td>\n",
       "      <td>21.200000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.677082</td>\n",
       "      <td>12.500000</td>\n",
       "      <td>18.100000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.624000</td>\n",
       "      <td>6.623500</td>\n",
       "      <td>94.075000</td>\n",
       "      <td>5.188425</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>666.000000</td>\n",
       "      <td>20.200000</td>\n",
       "      <td>396.225000</td>\n",
       "      <td>16.955000</td>\n",
       "      <td>25.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>88.976200</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>27.740000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.871000</td>\n",
       "      <td>8.780000</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>12.126500</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>711.000000</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>396.900000</td>\n",
       "      <td>37.970000</td>\n",
       "      <td>50.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             CRIM          ZN       INDUS        CHAS         NOX          RM         AGE         DIS         RAD  \\\n",
       "count  506.000000  506.000000  506.000000  506.000000  506.000000  506.000000  506.000000  506.000000  506.000000   \n",
       "mean     3.613524   11.363636   11.136779    0.069170    0.554695    6.284634   68.574901    3.795043    9.549407   \n",
       "std      8.601545   23.322453    6.860353    0.253994    0.115878    0.702617   28.148861    2.105710    8.707259   \n",
       "min      0.006320    0.000000    0.460000    0.000000    0.385000    3.561000    2.900000    1.129600    1.000000   \n",
       "25%      0.082045    0.000000    5.190000    0.000000    0.449000    5.885500   45.025000    2.100175    4.000000   \n",
       "50%      0.256510    0.000000    9.690000    0.000000    0.538000    6.208500   77.500000    3.207450    5.000000   \n",
       "75%      3.677082   12.500000   18.100000    0.000000    0.624000    6.623500   94.075000    5.188425   24.000000   \n",
       "max     88.976200  100.000000   27.740000    1.000000    0.871000    8.780000  100.000000   12.126500   24.000000   \n",
       "\n",
       "              TAX     PRTATIO           B       LSTAT        MEDV  \n",
       "count  506.000000  506.000000  506.000000  506.000000  506.000000  \n",
       "mean   408.237154   18.455534  356.674032   12.653063   22.532806  \n",
       "std    168.537116    2.164946   91.294864    7.141062    9.197104  \n",
       "min    187.000000   12.600000    0.320000    1.730000    5.000000  \n",
       "25%    279.000000   17.400000  375.377500    6.950000   17.025000  \n",
       "50%    330.000000   19.050000  391.440000   11.360000   21.200000  \n",
       "75%    666.000000   20.200000  396.225000   16.955000   25.000000  \n",
       "max    711.000000   22.000000  396.900000   37.970000   50.000000  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe() # 描述性统计信息中包含数据的均值、方差、最大值、最小值、中位值、四分位值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<bound method NDFrame.describe of          CRIM    ZN  INDUS  CHAS    NOX     RM    AGE     DIS  RAD    TAX  PRTATIO       B  LSTAT  MEDV\n",
       "0     0.00632  18.0   2.31     0  0.538  6.575   65.2  4.0900    1  296.0     15.3  396.90   4.98  24.0\n",
       "1     0.02731   0.0   7.07     0  0.469  6.421   78.9  4.9671    2  242.0     17.8  396.90   9.14  21.6\n",
       "2     0.02729   0.0   7.07     0  0.469  7.185   61.1  4.9671    2  242.0     17.8  392.83   4.03  34.7\n",
       "3     0.03237   0.0   2.18     0  0.458  6.998   45.8  6.0622    3  222.0     18.7  394.63   2.94  33.4\n",
       "4     0.06905   0.0   2.18     0  0.458  7.147   54.2  6.0622    3  222.0     18.7  396.90   5.33  36.2\n",
       "5     0.02985   0.0   2.18     0  0.458  6.430   58.7  6.0622    3  222.0     18.7  394.12   5.21  28.7\n",
       "6     0.08829  12.5   7.87     0  0.524  6.012   66.6  5.5605    5  311.0     15.2  395.60  12.43  22.9\n",
       "7     0.14455  12.5   7.87     0  0.524  6.172   96.1  5.9505    5  311.0     15.2  396.90  19.15  27.1\n",
       "8     0.21124  12.5   7.87     0  0.524  5.631  100.0  6.0821    5  311.0     15.2  386.63  29.93  16.5\n",
       "9     0.17004  12.5   7.87     0  0.524  6.004   85.9  6.5921    5  311.0     15.2  386.71  17.10  18.9\n",
       "10    0.22489  12.5   7.87     0  0.524  6.377   94.3  6.3467    5  311.0     15.2  392.52  20.45  15.0\n",
       "11    0.11747  12.5   7.87     0  0.524  6.009   82.9  6.2267    5  311.0     15.2  396.90  13.27  18.9\n",
       "12    0.09378  12.5   7.87     0  0.524  5.889   39.0  5.4509    5  311.0     15.2  390.50  15.71  21.7\n",
       "13    0.62976   0.0   8.14     0  0.538  5.949   61.8  4.7075    4  307.0     21.0  396.90   8.26  20.4\n",
       "14    0.63796   0.0   8.14     0  0.538  6.096   84.5  4.4619    4  307.0     21.0  380.02  10.26  18.2\n",
       "15    0.62739   0.0   8.14     0  0.538  5.834   56.5  4.4986    4  307.0     21.0  395.62   8.47  19.9\n",
       "16    1.05393   0.0   8.14     0  0.538  5.935   29.3  4.4986    4  307.0     21.0  386.85   6.58  23.1\n",
       "17    0.78420   0.0   8.14     0  0.538  5.990   81.7  4.2579    4  307.0     21.0  386.75  14.67  17.5\n",
       "18    0.80271   0.0   8.14     0  0.538  5.456   36.6  3.7965    4  307.0     21.0  288.99  11.69  20.2\n",
       "19    0.72580   0.0   8.14     0  0.538  5.727   69.5  3.7965    4  307.0     21.0  390.95  11.28  18.2\n",
       "20    1.25179   0.0   8.14     0  0.538  5.570   98.1  3.7979    4  307.0     21.0  376.57  21.02  13.6\n",
       "21    0.85204   0.0   8.14     0  0.538  5.965   89.2  4.0123    4  307.0     21.0  392.53  13.83  19.6\n",
       "22    1.23247   0.0   8.14     0  0.538  6.142   91.7  3.9769    4  307.0     21.0  396.90  18.72  15.2\n",
       "23    0.98843   0.0   8.14     0  0.538  5.813  100.0  4.0952    4  307.0     21.0  394.54  19.88  14.5\n",
       "24    0.75026   0.0   8.14     0  0.538  5.924   94.1  4.3996    4  307.0     21.0  394.33  16.30  15.6\n",
       "25    0.84054   0.0   8.14     0  0.538  5.599   85.7  4.4546    4  307.0     21.0  303.42  16.51  13.9\n",
       "26    0.67191   0.0   8.14     0  0.538  5.813   90.3  4.6820    4  307.0     21.0  376.88  14.81  16.6\n",
       "27    0.95577   0.0   8.14     0  0.538  6.047   88.8  4.4534    4  307.0     21.0  306.38  17.28  14.8\n",
       "28    0.77299   0.0   8.14     0  0.538  6.495   94.4  4.4547    4  307.0     21.0  387.94  12.80  18.4\n",
       "29    1.00245   0.0   8.14     0  0.538  6.674   87.3  4.2390    4  307.0     21.0  380.23  11.98  21.0\n",
       "..        ...   ...    ...   ...    ...    ...    ...     ...  ...    ...      ...     ...    ...   ...\n",
       "476   4.87141   0.0  18.10     0  0.614  6.484   93.6  2.3053   24  666.0     20.2  396.21  18.68  16.7\n",
       "477  15.02340   0.0  18.10     0  0.614  5.304   97.3  2.1007   24  666.0     20.2  349.48  24.91  12.0\n",
       "478  10.23300   0.0  18.10     0  0.614  6.185   96.7  2.1705   24  666.0     20.2  379.70  18.03  14.6\n",
       "479  14.33370   0.0  18.10     0  0.614  6.229   88.0  1.9512   24  666.0     20.2  383.32  13.11  21.4\n",
       "480   5.82401   0.0  18.10     0  0.532  6.242   64.7  3.4242   24  666.0     20.2  396.90  10.74  23.0\n",
       "481   5.70818   0.0  18.10     0  0.532  6.750   74.9  3.3317   24  666.0     20.2  393.07   7.74  23.7\n",
       "482   5.73116   0.0  18.10     0  0.532  7.061   77.0  3.4106   24  666.0     20.2  395.28   7.01  25.0\n",
       "483   2.81838   0.0  18.10     0  0.532  5.762   40.3  4.0983   24  666.0     20.2  392.92  10.42  21.8\n",
       "484   2.37857   0.0  18.10     0  0.583  5.871   41.9  3.7240   24  666.0     20.2  370.73  13.34  20.6\n",
       "485   3.67367   0.0  18.10     0  0.583  6.312   51.9  3.9917   24  666.0     20.2  388.62  10.58  21.2\n",
       "486   5.69175   0.0  18.10     0  0.583  6.114   79.8  3.5459   24  666.0     20.2  392.68  14.98  19.1\n",
       "487   4.83567   0.0  18.10     0  0.583  5.905   53.2  3.1523   24  666.0     20.2  388.22  11.45  20.6\n",
       "488   0.15086   0.0  27.74     0  0.609  5.454   92.7  1.8209    4  711.0     20.1  395.09  18.06  15.2\n",
       "489   0.18337   0.0  27.74     0  0.609  5.414   98.3  1.7554    4  711.0     20.1  344.05  23.97   7.0\n",
       "490   0.20746   0.0  27.74     0  0.609  5.093   98.0  1.8226    4  711.0     20.1  318.43  29.68   8.1\n",
       "491   0.10574   0.0  27.74     0  0.609  5.983   98.8  1.8681    4  711.0     20.1  390.11  18.07  13.6\n",
       "492   0.11132   0.0  27.74     0  0.609  5.983   83.5  2.1099    4  711.0     20.1  396.90  13.35  20.1\n",
       "493   0.17331   0.0   9.69     0  0.585  5.707   54.0  2.3817    6  391.0     19.2  396.90  12.01  21.8\n",
       "494   0.27957   0.0   9.69     0  0.585  5.926   42.6  2.3817    6  391.0     19.2  396.90  13.59  24.5\n",
       "495   0.17899   0.0   9.69     0  0.585  5.670   28.8  2.7986    6  391.0     19.2  393.29  17.60  23.1\n",
       "496   0.28960   0.0   9.69     0  0.585  5.390   72.9  2.7986    6  391.0     19.2  396.90  21.14  19.7\n",
       "497   0.26838   0.0   9.69     0  0.585  5.794   70.6  2.8927    6  391.0     19.2  396.90  14.10  18.3\n",
       "498   0.23912   0.0   9.69     0  0.585  6.019   65.3  2.4091    6  391.0     19.2  396.90  12.92  21.2\n",
       "499   0.17783   0.0   9.69     0  0.585  5.569   73.5  2.3999    6  391.0     19.2  395.77  15.10  17.5\n",
       "500   0.22438   0.0   9.69     0  0.585  6.027   79.7  2.4982    6  391.0     19.2  396.90  14.33  16.8\n",
       "501   0.06263   0.0  11.93     0  0.573  6.593   69.1  2.4786    1  273.0     21.0  391.99   9.67  22.4\n",
       "502   0.04527   0.0  11.93     0  0.573  6.120   76.7  2.2875    1  273.0     21.0  396.90   9.08  20.6\n",
       "503   0.06076   0.0  11.93     0  0.573  6.976   91.0  2.1675    1  273.0     21.0  396.90   5.64  23.9\n",
       "504   0.10959   0.0  11.93     0  0.573  6.794   89.3  2.3889    1  273.0     21.0  393.45   6.48  22.0\n",
       "505   0.04741   0.0  11.93     0  0.573  6.030   80.8  2.5050    1  273.0     21.0  396.90   7.88  11.9\n",
       "\n",
       "[506 rows x 14 columns]>"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         CRIM    ZN  INDUS      CHAS   NOX    RM   AGE   DIS       RAD   TAX  PRTATIO     B  LSTAT  MEDV\n",
      "CRIM     1.00 -0.20   0.41 -5.59e-02  0.42 -0.22  0.35 -0.38  6.26e-01  0.58     0.29 -0.39   0.46 -0.39\n",
      "ZN      -0.20  1.00  -0.53 -4.27e-02 -0.52  0.31 -0.57  0.66 -3.12e-01 -0.31    -0.39  0.18  -0.41  0.36\n",
      "INDUS    0.41 -0.53   1.00  6.29e-02  0.76 -0.39  0.64 -0.71  5.95e-01  0.72     0.38 -0.36   0.60 -0.48\n",
      "CHAS    -0.06 -0.04   0.06  1.00e+00  0.09  0.09  0.09 -0.10 -7.37e-03 -0.04    -0.12  0.05  -0.05  0.18\n",
      "NOX      0.42 -0.52   0.76  9.12e-02  1.00 -0.30  0.73 -0.77  6.11e-01  0.67     0.19 -0.38   0.59 -0.43\n",
      "RM      -0.22  0.31  -0.39  9.13e-02 -0.30  1.00 -0.24  0.21 -2.10e-01 -0.29    -0.36  0.13  -0.61  0.70\n",
      "AGE      0.35 -0.57   0.64  8.65e-02  0.73 -0.24  1.00 -0.75  4.56e-01  0.51     0.26 -0.27   0.60 -0.38\n",
      "DIS     -0.38  0.66  -0.71 -9.92e-02 -0.77  0.21 -0.75  1.00 -4.95e-01 -0.53    -0.23  0.29  -0.50  0.25\n",
      "RAD      0.63 -0.31   0.60 -7.37e-03  0.61 -0.21  0.46 -0.49  1.00e+00  0.91     0.46 -0.44   0.49 -0.38\n",
      "TAX      0.58 -0.31   0.72 -3.56e-02  0.67 -0.29  0.51 -0.53  9.10e-01  1.00     0.46 -0.44   0.54 -0.47\n",
      "PRTATIO  0.29 -0.39   0.38 -1.22e-01  0.19 -0.36  0.26 -0.23  4.65e-01  0.46     1.00 -0.18   0.37 -0.51\n",
      "B       -0.39  0.18  -0.36  4.88e-02 -0.38  0.13 -0.27  0.29 -4.44e-01 -0.44    -0.18  1.00  -0.37  0.33\n",
      "LSTAT    0.46 -0.41   0.60 -5.39e-02  0.59 -0.61  0.60 -0.50  4.89e-01  0.54     0.37 -0.37   1.00 -0.74\n",
      "MEDV    -0.39  0.36  -0.48  1.75e-01 -0.43  0.70 -0.38  0.25 -3.82e-01 -0.47    -0.51  0.33  -0.74  1.00\n"
     ]
    }
   ],
   "source": [
    "# 关联关系\n",
    "set_option('precision', 2)\n",
    "print(data.corr(method='pearson'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  2) b) 数据可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWkAAAD/CAYAAAAzMyekAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3X20HFWZ7/HvQwATciIHOfEECHBQhjAGJEyiBEU5OHjjiC8oV17kmuQuITN40dEZxJdhAFnKzEDwOr4tFo7XiAQVBUHGUSFOGuEOwZvcQfAFuSDhxRAwEJATEQl57h+7OqnT6XO6uruqenf377NWr3O6urr2rqeqnt61a3e1uTsiIhKnXTpdARERmZiStIhIxJSkRUQipiQtIhIxJWkRkYgpSYuIRExJWkQkYl2RpM2sYmabzexFNdMXmNm/Jq89ZWa/MLNPmdleyetLzewFMxureezbmTXpPma23syeTeK22cy+Z2b7d7pesTOzd5vZ2iRuj5rZ983sGDO70MyuqjO/m9nBNdOWJtNPrjP/x83sgWT5j5jZN4tcn1g1iPPzyfSnzOw/zOzo1PtGzeyR1PNKEusjapZ/fTJ9tMTVGif6JG1mI8DrAAfelpr+GqAC/G/gUHcfBN4EbAXSgb7d3QdqHhtKqn6veKu7DwD7AI8Bn+twfaJmZn8DfAa4GBgGDgC+CLy9yUUtAZ5M/qaXvwR4D3B8sl0WAD9qs9pdJ0Ocv5nEZwhYDXyrwSLvBRanlr83sBD4bb41b070SZoQtDXACsbvrJcAX3H3f3D3xwDc/SF3v8DdK6XXsg+4+x+AbwOv6HRdYmVmewIXAf/D3a9z9y3u/ry73+juH25iOQcCxwLLgEVmNpx6+VXAD939fgB33+juV+S4GtFrJs7uvhVYCexnZjMnWexK4BQzm5I8Pw34DvDHAlYhs25J0iuTxyIzGzaz6cDRwLUdrVmfMbM9gFMIH5pS39HAVMLB3Y7FwFp3vxb4JXB66rU1wGIz+3DS5Tel7hJ6W+Y4m9nuhHg+AWyeZNYNwC+A/5I8Xwxc2V412xd1kjazY4ADgWvcfR1wP/BuYC9C3Tem5r0k6XvaYmbnpRazMJlefdxf5jr0iOvN7Cngd8AbgUs7XJ+Y7Q1sSlpvEzm5Zp98qs48i4Grk/+vJnUW6e5XAe8HFgG3AI+b2UfzqX7XyBxn4FngTOC/NpgfQlJebGZzgEF3vz2f6rYu6iRN2DFvcvdNyfPqzroZ2EboIwXA3c9N+qW/A+yaWsYadx9MPV5eUt17yYlJbF8EnA3cYmazOlynWD0BDJnZrpPMc03NPjmYftHMXgscBHwjmXQ1cLiZzavO4+4r3f14YBD4K+AiM1uU65rELXOcCf3VPwPmZ1judcAbCB+CX2u7ljmINkmb2TTgZOBYM9toZhuBDxEuCh4M3AG8s4NV7Dvu/oK7Xwe8ABzT6fpE6nbgD8CJbSxjCWDAncl+f0cyfXHtjEk/7LeAu4DD2iiz22SOc9LI+0vgQjPbp8G8vwe+D5xFJEl6sk+hTjuRkAwOZ3zH/TWEnfVc4Idm9hvgf7n742Y2m9ACua/syvYDMzPCCJu9CP2kUsPdnzaz84EvmNlW4CbgeeB44Djg95O938ymEhony4DvpV46CTjfzM4F/hthxMGPgS2Ebo+57EjmPa/ZOLv7PWb2Q0Le+FCDxX8c+Bd3X597xVsQbUua0Jr4SjJiY2P1AXyecBFlDeG05PXAvUnf0w8Iw/LSQ8SOrjNO+lXlrkrXu9HMxgh90p8Clrj7zztcp2i5+6eBvwHOIyTThwndRNdnePuJhD7UK2v2+y8DUwjDTH9HSCQPAU8RRjqd5e635b0uMWshzpcCy8zspQ2WuyGmWJpu+i8iEq+YW9IiIn1PSVpEJGJK0iIiEVOSFhGJWNtD8IaGhnzmzJlMnz49j/p0pS1btmxf/3Xr1m1y98nuD9C0oaEhHxkZ2ams2JRVt2ZjbGbHAvdU7/GSmr6MMNSNadOmzd9//3Bzv23btrHLLv3Xfkmv97333ts3+3Gn6pJ5P3b3th7z58/31atXez9Lrz/hfgttx9VrYlyvrNiUVbd+jnGR+nU/7lRdssa4/5oLubLkIcXpRIzXdaDMfqMYZ6UkLSISMSVpEZGIKUmLiERMSVpEJGJK0iIiEVOSFhGJmJK0iEjElKRFRCKmJC0iEjElaRGRiClJi4hETElaRCRiStIiIhFTkhYRiZiStIhIxJSkRUQipiQtIhKxhr9xaGZHAes99ftw6d+GGx4eZmxsjEqlUlgl47Mu+bscoK31N7OjgV/7JL+/Nzw8vH35Mce6mLotT/7mvVyR7tAwSbv7HXWmXQFcAbBgwQIfGBhgdHQ0/9pF67hxzyqV1S2vv7vfPsH0cTGuLr9SqUQb62LqVo2157xcke7Q9q+Fi3Sric9WZlOpLKffWu/lnhHGE+OYz05BSVr6gJkdC9zl7pvT0yc+W7mM0dFz6LfWeztnQs2fEcYT45jPTkFJWvqAu9/S6TqItEqjO0REIqYkLSISMSVpEZGIqU+6KdbpCohIn1FLWkQkYmpJZ6IWtIh0hlrSIiIRU5IWEYmYkrSISMTUJ12X+qBFJA5qSYuIRCzClnRtKzbrDViq7+v8DVtERPISYZKuNVHybScp175XCT4+6nISgY4m6aITY73l1x74jZ6LiHRWyUlaSVBEpBkFJekiWsmtJnh9MIjES12NjUTUJ51XElZSFpHeUdIQPEPJUyRWMRyfVvOQqoJb0lmCrQ0ioP1AxlM3SFXOLeliPgVHRmDaNJgxAwYH4TWvgcsvh23bwutLl8J55+2Y/8tfhkMPDfMPD8MJJ8Azz+RerQ5Zx86tjnotkB3TRkaMVauMFSsMM+PSSy8dN8/s2bO3/1ryhRdeyG677caMGTOYMcM45BDj7LPP5tFHH92+5BUrVnDMMcfsVPapp76TVatCHR555BFOOskYGjL23NM4/PBQfuN6d6eRkRFWrVq10/SLL76Ygw46iIGBAWbPns0pp5wCwNy5cxkYGGBgYIApU6YwderU7c8vvvji7e+vVCqYGZdccsn2abfeeuv2eadPn46ZbX8+MDDAQw89VPwKl2b8fjIyYuy+u7Fp0/j9Zt68eZgZ69evZ+nSpey+++7jYnLEEUcAsH79+nHxGh4e5mMf+xg333zz9mUtWrSI888/f6ea3HDDDcyaNYutW7cWu8o1zL3xJ5WZLXT3Nann23+mHZgDPAFsKqSGweHAeuAZYAowAByQPF8PjAB/BDYkr70cuBd4Npl/ENgMbCuofkPsWP8D3X1mM2+ujW8yrTbGv6pTVlbV+O0O7E9ontzNjni8EniAEM99gRclzy35f19CXH8JPA/sndSjWqeqecD9yXIOIcT/N0k504DdgN81Wfd6Yo5xujmwNzALuA94jnDmOlhn2ZMdQyPJe54Hfl7n9d2Tstc1Wd96Yt+PIayrA48nDwj71ssJ++rdhP21mg9q1cZrV8IxMQg8RNgOLwH2S5aV9rJkuY+0UO96ssXY3dt+AGvzWM4ky18PHF8z7dWEg/8wYAXwyWT6OcD1Rdan7PVvt6xq/IClwG3AjcAFqdcfAUaT/y8Erqp5/xTgp8Dy5PlS4LY65TxX3U7AGDCvzO0QQ4xrpn0e+EyG91aAM+pM34OQ9E8lJIcFdeYZISStXTux3mWXlcT5POD/pKYtB/4uicNIOh9kiRewNskbjxF6F6YBTwOvT82zF/AH4Iiy98euvXeHu/+EkFxeV/PSHcAiM/uEmb3WzF5Ufu2i9/fAh8zsJVlmdvcXgBvYOdaTWQN8wcxONbMDWqhjL1gDLDazD5vZAjOb0uT7TyJ82H0L+CGwOO8Kdqk1wIvN7E+TmJ4CXNXmMq8DXgrMcfdngWsYH++TgXvc/adtltO0rk3SiQ2EU5Pt3P1W4J3AnwHfA54ws0+3cID0LHe/E7gJ+EgTb9sp1g28C7iV8IHwgJndaWavauL9Xc/drwLeDywCbgEeN7OPNrGIJcA3kw/Jq4HTzGy3/Gvalb5GSKJvBO4hdKulnWNmT6UeX22wvGrXSHUf/yrwLjObljxfnEwrXV5J+oqcltOs/YAnaye6+/fd/a2EgL+dcHp+RoH1KHP98yrrfOAsM5uVcf50rLcS+pdr/Z7Qd4q7b3b3j7r7XGAYuBO43sy64SphbtvT3Ve6+/GEPs+/Ai4ys0WN3mdm+wPHASuTSTcAU4ET8qpbHd20H38NeDfh2L6yzuvL3X0w9VjSoC77Jf8/CeDutwG/Bd5uZi8DXkX4oCxdLkna3UtP0kmrbD9CH2td7r7N3X8E/Duh77oQZa5/XmW5+z2EU7yPN5rXzHYB3kpoGUO4wHJAOuGa2R6Ei4sP1ilrE6HfcF+aa413RBHb092fd/dvAXeRbV98D+H4vNHMNgK/JiTpwro8umk/dvcHCRe330zYj9utyzsIFyLTF8OvJMT7PcBN7v5YO+W0quu6O8zsxWb2FuAbhAtcd9e8/vakH3QvC14NHEvox5LxPgH8d0IrbydmtpuZ/SnwdcIohU8nL91BuIjyUTObambTgX8kXIB5MHnvP5nZYWa2q5nNAM4C7nP3Jwpdo87aLYlH9XGGmZ1gZjPMbBcz+wtgLiF+jSwmbJ95qcdJwAlmtndha9Bd3gu8wd23tLoAMxs2s7OBC4CPuXt6BNiVhAvuZ9Khrg6I6mvhDd1oZlsJIzp+QUgYl9eZbzPwAcKV9RcBjwKXuvvKOvP2NXd/wMy+RkigaaeY2YmEIXgbgJuB+e6+IXnfc2Z2AvA/gb8FXiC0sk/25FI4YWTCd4B9CEPx7gDeVvAqddq/1Tz/JWF/vIowQuZB4KzkVHpCZraQMArhC+7+29RL3zWz+4DTCPt3X3P3+yd5+Vwz+2Dq+R/cfSj1/KnkTHALoXHxLnf/Qc3y15vZfwBHAN/Nq97NyjROuuFC6oyP7BfJAfVAWadCscbazI4F7nL3zZ2uS7tijXHRzOzQpBus6HKiia+ZHQWs71RXRha5JGkRESlG1/VJi4j0EyVpEZGIKUmLiESs7dEdQ0NDPjIykkNVJrZlyxamT59eaBl5lbdu3bpN3uSNaRqpxrjsOOShiDoXEePBwUE/+OCD81xkS2LZxkXux2WLJaYwvi6ZY9zuzT/mz5/vRVu9enXhZeRVHgXcpKYa47LjkIci6lxEjA855JDc69mKWLZxkftx2WKJqfv4umSNccHdHb1xr2DJql+2d7+sZzfo/W3RTV9mEYmUfkWk8+ol6t7YHkrSItK2ib4Ukr7p//Dw8PZfAMrP8kleuwyAsbE5BZTbmrGxsabroiQt0pBayo24e937kXi4edEVAAsWLPDR0dGcSz6u4RyVymryL7c1lUql6bpoCJ6ISMQKakn3dke+iEhZ1JIWEYmY+qRFMtMZopRPLWkRkYi11JJuPKymdlhM7evNaWXYSjeVJyIykYZJut74x8bDaiYaFtPaEKZWhq20o+zy6qn3QRj/h0f1w7myfUr8dRaJW8MkPdH4R8nHRL/sUu+DMIYPj8lVP5x3fBjHX+d2NOqj7t1vwUl5dOGwwzySnxGSepq9UKgvvUj+dOFQRCRiakmL5E5D9SQ/akmLiERMLWmRjlD/dXv652yl5CSdDqx2Tums9DDHmTNnZhjvn4dqGTsPVwQNWZSdqSUtfSEZ73+vu2+uTksPc5wzZ04T4/3bUW2c7DxcEXp9yGIrdMahJC19Id7x/kpCMjklaZFS9U9far7698MsgtEdvf9DkiIirYogSYuIyERy7u5Qi1hEJE8RtaTV7SEiRVhHN+cWXTgUkS7Svcm2VRG1pEVEpFYHk3Sj7o3a19UdIr1M+7fUp5Z0z9BBLhKv1o/PCPukdaN1ESlSd+UMtaT7klrdIjuL87hQku55ce540oiuyRSvO2KqJN2zumMHlFrdPaa3fdpva3VBkjbCjltver2N2S8bOc/1LCpm1W3XD9ujKP2yP9cqYr27M2dEeOGwkVYvLEK3XCgQaV237u/xJslO68IkLa3RQSDSnDhGgShJd73a5Ktk3L5uiGEcCUSK10NJuhsOLJG8dXuy1nHbSA8laWlfGQd8tyeVTlNSK95EZ6ed2WeVpEV6QjPJO4YPyl76sCk2nj2cpBvdvKmebmjddWLnLvOgjiGB9IqssVTMWzPZ9aD8YtnDSbqedobvQf/sxI3ipKTdXXqp1dot8ttvzb35hZjZMmBZ8nQO8Ku2a7KzwwlftrkbeAmwCRgC9k6VNwzMBHYHngeeBDawIzIvB7YCD6aW+/Jk3ocmKXsoKa8VB7r7zBbfu90EMW5Ur8OB3Qjrvw14mrCefwJMT00fS6Y/DxxAiCnsvGeNAf8v+X8X4AjgGeC+VJlHpv7fJXlv9f0PErbdC8ADqfkabbdGiojxYcDP2l1mHRNtk22pefYF9gF+CezBjm28NzCSmncrIf6PAs8VUNe0Oe4+o92FlJQratXG/Dng3uT/EUJc7yNsi6r9gZcC64EnCqxb+hjOth+7e8MHsDDLfHk+2BGsjwNrk2lnAJXk/88REsjRhDOCucBPgBtSy5iVLOO45PkphMQx0KDstSWva6b4NqpXErPjk//3IySdfwQqwBnJ9EHgJmBlnfdfCFw1wbKXJLHcCuzTqPzUtA3pZWbZbp2IcVHbvGabzAJ+Cnwq9boB9yex/UK6HsBS4Lbk/ymEBsYXCYn6sILj1XQ8OpEnMsb899WYAysIHxTXpubfFfgNIXEvjS2umb4W7u5rssxXgEuBcwg76HZm9ifA+4DT3f12d9/q7j8HTgLeZGZvAHD3jcDfAl8yswOAzwJ/6e5jZa5EI0XE191/A3yf0EJMT38KuB6Y1+QilwCXA3cBp7dSp6zbrQgd3IfTddgI/JDxsX8doSX918CpTNA34e4vuPv97v4+4BbCB2pUYohxrSTmv2N8zG8EXmtmeyXP30TYrzeWXL1MYr93x1pCK3C4ZvqfA4+4+0/SE939YWAN8MbUtBWElsr/BX7g7j8osL7RMLP9gTcD/1kzfW/gnYzvsmi0rAOAUWBl8ljcYrUyb7deZGazgb9gfOyXEJLGN5Pne2ZY1HWE5C4NJDF/MeNj/gfgu4QPRQj785UlVy2z2JM0wPnAoJml+26GCP1y9TyavJ52K6Ef6qqMZV7RVA3Lk6Ve15vZU8BthBbXxcn0z5rZ0+zo239/E+UuBu5y918AXwfmmtmRDd5Tlb47VrPbrUxFbvPrzewZ4GHgceACADPbA3gXcLW7Pw98m3AdoJENhL7+IsV6DGSVjvmDJDFPuRJYbGZ7AscSzi7L0HRco0/S7v4z4DvAR1OTNxEutNSzD6mLa8kp9jmEvrzLzGy3DGVGuYNmrNeJ7j7o7ge6+/vc/dlk+gfcfU/glcBewOwmil5MaEHj7hsIyX9Jxvemk3Tm7Va2grf5iR4uwo0Ch7Ljw+gdhD7+f0uerwReUdMgqWc/wsXWwsR6DDQhHfMXU9MAcPfbCBevzwP+NXWcFKqVuEafpBMXAGcSdk6Afwf2N7NXp2dKTvEXAj9KnhvwL8BnCC3HLcBHSqpzlNz9buCTwBeS+EzKzF5DGB3yMTPbaGYbgaOA08ys2SGcmbZbr3L3WwgXrpYnk5YAA8BDSVy/RRiVcFqDRb2DcHYoDdSJedpVhGtW0XZ1QJckaXe/j9Bn94Hk+b2Ei1grzWyhmU0xs7nAtcAqd1+VvPUswifoxe6+DXgvcK6ZHVr6SsTlq4ThRm/LMO8S4GbgFYSLL/MIFyP3IPSvZtbEdutlnwHeaGavJfTRv4UdcT0C+CfqnKUksTrIzD5HaB1+orQad79qzGsvln+WcB3kx+VXKbuuSNJmdhRwEWGsb9XZhFbyVYR+vB8QLjKelLxnf0J/7Hvd/Y8ASZ/qZYTRHhO2Is3sUDOrvVjZcWa2MI/lJPH4LPD3DcqbCpwMfM7dN6YeDwBfI1uXxyxgaur5pNutU/KKbSPu/ltCy+3HwJ3uflM6toSzjVeaWXVUztFmNkYYoVAhnLq/KjkjKoyZ/VmMx0CLXgZ8g5r93d2fdPcfeTI2rmhmdlQrMW3pyywiIlKOrmhJi4j0KyVpEZGIKUmLiERMSVpEJGJt36p0aGjIR0ZG2q7Ili1bmD59euMZC5JX+evWrdvkOdyhLS2vGEPn45xHHYqI8eDgoB988MF5LjIKrcY69v0YOrcvl54r2r2r0/z58z0Pq1evzmU5nS6fAu6mlleM3Tsf5zzqUESMDznkkLbqFKtWYx37fuzeuX257FxRUneHoRuPy3jaJ+LR69uiu9dPfdIiIhFTkhaRPtGdLeqGFw6Tr2Svd/fHUtO2/yTO8PAwlUqlwVKq9zaZeL6xsbEMyylOp8sXEamnYZJ29zvqTLuC5L6oCxYs8NHR0QZLOa76zgnnqFQqNF5OcTpdvohIPeruEGlZd54+S3dRkhYRiZiStEhmajn3lu7YnkrSIiIRU5IWEYlY2/fuEIld8qsrD6SHkSbTtw8lnTlzZgtDSRsPLe20bENL41+PfMXfxZEWcZKuBlK/HCPtcfc1E0zfPpR0zpw5LQwlbTy0tNOyDS2Nfz36WcRJuj9kaeVl+8JQNjF8aSfUod9abyKtUZLusCytvGxfGMomhi/thDqckzxT662XFdXYgGYaHMsbvJ5lGa2Umw8laRFpW73bR0BxjQ1opsFxXIPXm2solN3QUZIWkbbVu32E5COCIXjdMaBcRKQTCkrSSrwiInmIoCXdLH0AiEj/KDhJN5NQ1zUxr4hIf+jClrSISP+IcHSHWtMiIlURJmkRkTxkbfDFfQuKLk7SrQS2dqPFuVFERKrUJy0iAsQ6cqwHknScgRURyUPJ3R3pZKquBhGRRnqgJS0i0ruUpEVEItbFoztERGr13vWpHkzSZY55jHt8peSl9w58mUxcx3XOSVo7s7QqrgNDJBZd0JIu8uDth8RQxDr2Q9yku/RuA1EXDkVE6orjOxhd0JJulVp7+Wu0w/ZazNu994O+FyDt6+EkLa1rNtnWJrNeS9YindMHSbqZ0xUll3x1a0uy86e4EpPO5oUO9kk3298TR/9Qb+hELLOW2c3buZvr3m2M8GtOZZdZ/vbtoZZ0vx0cavWLdFY5x2APJWnJX6OdsN8+GEXqqXec5JfANQSvb1RP1eqdIuo0XbpF7b7aiX23lR/Nbr2e0SbpgYEdj112gWnTdjxfuXLHfCtWgBlcc8349994I8yaBU8+uWPaDTfAfvvB00+XsgoFyXOnHL+slSuNgQEbF/uBATAzLrrIGB2FqVPh4Yd3LGHVKhgZabbMsvsSpXtMtH/3b0PC3Bs3x81sobuvST1fBixLns4BfpVDXYaATRO8djiwHnimzmuHAHsAY8B9Na8dRDjfWA9MAeYCDwL10vRk5TfjQHef2cwbauObTCsixtD8eg4B+wG/AF4GTAM2E+IIMAMYAe4usA61iojxYcDP2qhTrFqNdez7MeR3zHaq3GwxdvcoHsDaSV5bDxxfZ/qBwDbgJGArMFzz+hDwOLAI+Arw9VbK76VHM+sJHEn4YBxNnleAC5JpByfTjgfWF1WHGOPSTY9eXa9OrlvZ5Ubb3ZHRYkLArgV+CZyeftHdNwF/DawE3gJ8oPQadikzGwS+DXzS3Supl34DfAm4sAPVEuk7vZCkr07+vxpYUmeeNcCewE3u/tuyKtbNzMyArxJO/y+pM8s/AG81s7mlVkykD8WUpK9oZmYzey2hz/kbyaSrgcPNbF6d5V4JvNnMXpNX+V0sy3p+hNBHu8ST87u05MPu88BFBdahbDHWKQ+9ul7QuXUrtdxoxkm7e7MrvoRwuffO0PDbbjFwJ4CZvRfYn9DVsRb4kpkd6e5/zKH8rtRoPc1sFPg74PXu/tQks14K/Br4Sd516IQY65SHXl0v6Ny6lV1uTC3pzMxsKnAy4arxvNTj/cDpZrarme1LSCRnuvtzwOXAE4QEJHWY2T6EM5MPuvt/TjZvksAvA84to24i/aorkzRwIvAscKW7b6w+gC8Thtq9Cfgi8A13vxUgOW0/E/ig+lIndCYwDPyzmY3VPC6vM/8/Ay+UW0WR/pJpnHThlTA7FrjH3R/rYPl3ufvmTpRfFjN7JfBwJ9fTzI4ENnRqW0+k3hjfXhBrvNtlZse6+y0dKPcod7+j1DJjSNIiIlJft3Z3iIj0BSVpEZGIKUmLiESs7XHSQ0NDPpLxNmhbtmxh+vTp7RbZlLLLXLdu3SZv8sY0jaRj3IkYxiC93kXEWCRWbSfpkZER1q5dm2neSqXC6Ohou0U2pewyzezBxnM1Jx3jTsQwBun1LiLGIrFSd4eISMSUpJsSw43HW/lVCBHpVkrSIiIRU5IWEYmYkrSISMSUpEVEIqYkLSISMSVpEZGIKUmLiERMSVpEJGJK0iIiEZv03h1mthB4oPZXHcxsGeH3BRkeHqZSqWQqbGxsLPO8ecm3zOXJ37yWJyIyuUmT9EQ/J5T8Wu4VAAsWLPCsN/zp/hssHZf81a/ZiEg51N0hIhIxJWkRkYgpSYuIRExJWkQkYkrSIiIRiyBJx3AjfRGROEWQpEVEZCJt/xCttMfMjgZ+nfULQ2Njs6lUltNvX6jpxBehRGKgJN1h7n77BNPrfmGoUrmM0dFz6Lcv1PTrr6SLqLtDRCRiStIiIhFTkhYRiZiStIhIxJSkRUQi1sHRHfoCi4hII13YktY3FEWkf3RhkhYR6R9K0iIiEVOSFhGJmJK0iEjECk7SusgnItKOklvS61DiFhHJrqQkXWRiVtIXkd4VYZ+0kq6ISFXO3zisJtci7nWsxC0i/SfClrSIiFRFnKTV7ZEPxVGkm0X081lKJCIitQpK0v2ScIvsg+91ip1IFhG1pCcyUcJvNL3fDv5G653lg7P63tp5s06vLbtemY22y0RliPQnc298EJjZQndfk3q+DFiWPJ0D/CpjeUPApmYr2aayyzzQ3Wc284ba+CbTJopxJ2IYg/R6Nx1jkW6VKUnnVpjZWndfUFqBHSqzSL22Pln163qLRDy6Q0RElKRFRCJWdpK+ouTyOlVmkXptfbKKfWmAAAAAX0lEQVTq1/WWPldqn7SIiDRH3R0iIhFTkhYRiVhpSdrMjjWzvcoqL1XmcJllFs3MFna6DmUzs4W9th1FslKftIhIxNTdISISMSVpEZGIKUmLiERMSVpEJGJK0iIiEfv/Wg65r3ez/XkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 数据可视化\n",
    "# 单一特征图表\n",
    "\n",
    "\n",
    "# 直方图\n",
    "data.hist(bins=30, sharex=False, sharey=False, xlabelsize=1, ylabelsize=1, facecolor='yellow')\n",
    "# bins 指定箱子的宽度，取正整数\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 密度图\n",
    "data.plot(kind='density', subplots=True, layout=(4,4), sharex=False, fontsize=1)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.plot(kind='box', subplots=True, layout=(4,4), sharex=False, sharey=False, fontsize=8)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 散点矩阵图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 196 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 多重数据图表\n",
    "# 接下来利用多重数据图表来查看不同数据特征之间的相互影响关系\n",
    "\n",
    "\n",
    "# 散点矩阵图\n",
    "scatter_matrix(data)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 相关矩阵图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 相关矩阵图\n",
    "fig = pyplot.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "cax = ax.matshow(data.corr(), vmin=-1, vmax=1, interpolation='none')\n",
    "fig.colorbar(cax)\n",
    "ticks = np.arange(0, 14, 1)\n",
    "ax.set_xticks(ticks)\n",
    "ax.set_yticks(ticks)\n",
    "ax.set_xticklabels(names)\n",
    "ax.set_yticklabels(names)\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4) a) 分离数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(404,)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 分离数据集\n",
    "\n",
    "array = data.values\n",
    "X = array[:, 0:13]\n",
    "Y = array[:, 13]\n",
    "validation_size = 0.2  # 分离出20%的数据作为评估数据集，80%的数据作为训练数据集\n",
    "seed = 7  # 随机数的种子\n",
    "X_train, X_validation, Y_train, Y_validation = train_test_split(X, Y,test_size=validation_size, random_state=seed)\n",
    "X_train.shape   # (404,13) 的array\n",
    "Y_train.shape   # (404,)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4) b) 定义模型评估标准"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 评估算法 —— 评估标准\n",
    "# 由于部分数据的线性分布，线性回归算法和弹性网络回归算法对解决问题可能比较有效。\n",
    "# 由于数据的离散化，通过决策树算法或支持向量机算法也许可以生成高准确度的模型\n",
    "\n",
    "num_folds = 10  # 采用10折交叉验证来分离数据\n",
    "seed = 7\n",
    "scoring = 'neg_mean_squared_error' # 通过均方误差来比较算法的准确度。均方误差越趋近于0，算法准确度越高"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4) c) 算法评估 比较"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对原始数据不做任何处理，对算法进行一个评估，形成一个算法的评估基准baseline。\n",
    "# 这个基准值是对  后续算法改善  优劣比较的基准值。\n",
    "# 我们选择三个线性算法和三个非线性算法来进行比较。\n",
    "\n",
    "#   线性算法： 线性回归（LR）、套索回归（LASSO）和弹性网络回归（EN）。 \n",
    "# 非线性算法：分类与回归树（CART）、支持向量机（SVM）和K近邻算法（KNN）。\n",
    "\n",
    "\n",
    "# 评估算法 - baseline\n",
    "models = {}\n",
    "models['LR'] = LinearRegression()\n",
    "models['LASSO'] = Lasso()\n",
    "models['EN'] = ElasticNet()\n",
    "models['KNN']  = KNeighborsRegressor()\n",
    "models['CART'] = DecisionTreeRegressor()\n",
    "models['SVM'] = SVR()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    LR: -21.379856 (9.414264)\n",
      " LASSO: -26.423561 (11.651110)\n",
      "    EN: -27.502259 (12.305022)\n",
      "   KNN: -41.896488 (13.901688)\n",
      "  CART: -22.695635 (9.566845)\n",
      "   SVM: -85.518342 (31.994798)\n"
     ]
    }
   ],
   "source": [
    "# 评估算法\n",
    "results = []\n",
    "for key in models:\n",
    "    # K折交叉验证：sklearn.model_selection.KFold(n_splits=3, shuffle=False, random_state=None)\n",
    "    # 思路：将训练/测试数据集划分n_splits个互斥子集，每次用其中一个子集当作验证集，剩下的n_splits-1个作为训练集，\n",
    "    # 进行n_splits次训练和测试，得到n_splits个结果    \n",
    "    kfold = KFold(n_splits=num_folds, random_state=seed)\n",
    "    \n",
    "    # Cross Validation 交叉验证  cross_val_score  得分[0,1]\n",
    "    cv_result = cross_val_score(models[key], X_train, Y_train, cv=kfold, scoring=scoring)\n",
    "    results.append(cv_result)\n",
    "    print('%6s: %f (%f)' % (key, cv_result.mean(), cv_result.std()))\n",
    "    # print(cv_result.shape) # (10,) 每种算法返回10个结果 cv_result\n",
    "    # print(results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#评估算法——箱线图 上面是10折交叉验证的均值方差，下面是所有10个结果画成的箱图\n",
    "\n",
    "fig = pyplot.figure()  # 子图\n",
    "fig.suptitle('Algorithm Comparison')\n",
    "ax = fig.add_subplot(111) # 返回Axes实例，三个参数分别为子图总行数、总列数、位置\n",
    "pyplot.boxplot(results)\n",
    "ax.set_xticklabels(models.keys()) # 设置x轴\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从图中可以看到，线性算法的分布比较类似，并且K近邻算法的结果分布非常紧凑。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 不同的数据度量单位，也许是K近邻算法和支持向量机算法表现不佳的主要原因。\n",
    "\n",
    "## 下面将对数据进行  正态化处理，再次比较算法的结果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 评估算法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'ScalerLR': Pipeline(memory=None,\n",
      "     steps=[('Scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('LR', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False))]), 'ScalerLASSO': Pipeline(memory=None,\n",
      "     steps=[('Scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('LASSO', Lasso(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=1000,\n",
      "   normalize=False, positive=False, precompute=False, random_state=None,\n",
      "   selection='cyclic', tol=0.0001, warm_start=False))]), 'ScalerEN': Pipeline(memory=None,\n",
      "     steps=[('Scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('EN', ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.5,\n",
      "      max_iter=1000, normalize=False, positive=False, precompute=False,\n",
      "      random_state=None, selection='cyclic', tol=0.0001, warm_start=False))]), 'ScalerKNN': Pipeline(memory=None,\n",
      "     steps=[('Scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('KNN', KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n",
      "          metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
      "          weights='uniform'))]), 'ScalerCART': Pipeline(memory=None,\n",
      "     steps=[('Scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('CART', DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,\n",
      "           max_leaf_nodes=None, min_impurity_decrease=0.0,\n",
      "           min_impurity_split=None, min_samples_leaf=1,\n",
      "           min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
      "           presort=False, random_state=None, splitter='best'))]), 'ScalerSVM': Pipeline(memory=None,\n",
      "     steps=[('Scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('SVM', SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',\n",
      "  kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False))])}\n",
      "   ScalerLR: -21.379856 (9.414264)\n",
      "ScalerLASSO: -26.607314 (8.978761)\n",
      "   ScalerEN: -27.932372 (10.587490)\n",
      "  ScalerKNN: -20.107620 (12.376949)\n",
      " ScalerCART: -24.648843 (8.169448)\n",
      "  ScalerSVM: -29.633086 (17.009186)\n"
     ]
    }
   ],
   "source": [
    "# 评估算法——正态化数据\n",
    "# Pipeline(memory=None,\n",
    "#        steps=[('anova', SelectKBest(...)),\n",
    "#               ('svc', SVC(...))])\n",
    "#  Pipeline对象接受二元tuple构成的list，\n",
    "# 每一个二元 tuple 中的第一个元素为 arbitrary identifier string，我们用以获取（access）Pipeline object 中的 \n",
    "# individual elements，\n",
    "# 二元 tuple 中的第二个元素是 scikit-learn与之相适配的transformer 或者 estimator。\n",
    "\n",
    "# Pipeline中的步骤可能有：\n",
    "# 特征标准化是需要的，可作为第一个环节\n",
    "# 既然是分类器，classifier也是少不了的，自然是最后一个环节\n",
    "# 中间可加上比如...\n",
    "\n",
    "pipelines = {}\n",
    "pipelines['ScalerLR'] = Pipeline([('Scaler', StandardScaler()), ('LR', LinearRegression())])\n",
    "pipelines['ScalerLASSO'] = Pipeline([('Scaler', StandardScaler()), ('LASSO', Lasso())])\n",
    "pipelines['ScalerEN'] = Pipeline([('Scaler', StandardScaler()), ('EN', ElasticNet())])\n",
    "pipelines['ScalerKNN'] = Pipeline([('Scaler', StandardScaler()), ('KNN', KNeighborsRegressor())])\n",
    "pipelines['ScalerCART'] = Pipeline([('Scaler', StandardScaler()), ('CART', DecisionTreeRegressor())])\n",
    "pipelines['ScalerSVM'] = Pipeline([('Scaler', StandardScaler()), ('SVM', SVR())])\n",
    "print(pipelines) # Pipeline返回\n",
    "\n",
    "results = []\n",
    "for key in pipelines:\n",
    "    kfold = KFold(n_splits=num_folds, random_state=seed)\n",
    "    cv_result = cross_val_score(pipelines[key], X_train, Y_train, cv=kfold, scoring=scoring)\n",
    "    results.append(cv_result)\n",
    "    print('%11s: %f (%f)' % (key, cv_result.mean(), cv_result.std()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEVCAYAAADjHF5YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGlZJREFUeJzt3XucXVV99/HP14iJikLSQCEXCGqgE0bIowPFPkFMTUXRkuIFklK5dNqoTww++vhScahE21TUIlW8NRVqUZgQfYmiQoHUQRkL4sRGTAhIEDBDQAfDtSEhhN/zx94TdoYzmcs+cy6zvu/X67xy9lr7staZyXfWWXuffRQRmJnZ+Pe8ejfAzMxqw4FvZpYIB76ZWSIc+GZmiXDgm5klwoFvZpYIB74Nm6SvSfqHMdr36ZKu30v96yT1jsWxm52kj0r6ar3bYY3PgW/PIelGSQ9LmlirY0bE5RHxhkIbQtIranV8Zc6RtF7S/0jqlfRNSa+sVRtGKyL+MSL+pt7tsMbnwLc9SJoFHA8EcHKNjvn8WhxnCJ8D3gecA0wBDge+A7y5no0aSoO8dtYkHPg20BnALcDXgDP3tqKkD0l6QNIWSX9THJVL2k/SZZL6JN0n6TxJz8vrzpL0E0kXSdoKLM/LuvP6H+eH+IWkJySdVjjm/5P0u/y4ZxfKvybpS5Kuzbf5iaSDJP1z/m7lDkn/a5B+zAaWAosj4ocRsSMituXvOi4YYX8ekfRrSX+Sl2/O23vmgLZ+RdINkh6X9CNJhxbqP5dv95iktZKOL9Qtl/QtSd+Q9BhwVl72jbx+Ul73+7wtP5P0h3ndNElXS9oqaZOkvx2w39V5Hx+XtEFS295+/tZ8HPg20BnA5fnjxP6wGEjSG4EPAAuAVwAnDFjlYmA/4GV53RnA2YX6PwZ+DRwIrChuGBGvzZ8eHRH7RsSV+fJB+T6nA+3AFyVNLmx6KnAeMBXYAdwM/Dxf/hbw2UH6/HqgNyJuHaR+uP25DfgD4ApgFXAM2WvzV8AXJO1bWP904O/ztq0je737/QyYS/ZO4wrgm5ImFeoX5v3Zf8B2kP2R3g+Ymbfl3cCTeV0n0AtMA94O/KOk1xe2PTlv9/7A1cAX9vJ6WBNy4NtukuYBhwKrI2ItcDfwl4OsfirwbxGxISK2AR8v7GcCcBpwbkQ8HhH3AhcC7yxsvyUiLo6IpyPiSYZnJ/CJiNgZEdcATwBHFOqvioi1EbEduArYHhGXRcQu4Eqg4gifLBgfGOygw+zPPRHxb4VjzczbuiMirgeeIgv/fj+IiB9HxA6gA3iNpJkAEfGNiPh9/tpcCEwc0M+bI+I7EfFMhdduZ96fV0TErvz1eCzf9zzgwxGxPSLWAV8d0IfuiLgm78PXgaMHe02sOTnwrehM4PqIeChfvoLBp3WmAZsLy8XnU4EXAPcVyu4jG5lXWn+4fh8RTxeWtwHFUfNvC8+frLBcXHeP/QIH7+W4w+nPwGMREXs7/u7+R8QTwFay17R/2mqjpEclPUI2Yp9aadsKvg5cB6zKp9o+LWmffN9bI+LxvfThwcLzbcAknyMYXxz4BoCkF5KN2k+Q9KCkB4H3A0dLqjTSewCYUVieWXj+ENlI89BC2SHA/YXlRrpN638CM/YyZz2c/ozU7tcrn+qZAmzJ5+s/TPazmBwR+wOPAipsO+hrl7/7+XhEzAH+BHgL2fTTFmCKpJdUsQ/WZBz41u8vgF3AHLL547lAC3ATWWAMtBo4W1KLpBcBH+uvyKcEVgMrJL0kPyH5AeAbI2jPb8nmy8dcRNwFfAnoVHa9/wvyk5+LJH2kSv0Z6CRJ8yS9gGwu/6cRsRl4CfA00Ac8X9LHgJcOd6eS5kt6ZT4N9RjZH6pd+b7/C/hk3rejyM6DDDwHYOOYA9/6nUk2J/+biHiw/0F24u70gW/tI+Ja4PNAF7CJ7AQpZCdLAZYB/0N2YrabbHro0hG0Zznw7/mVJqeOsk8jcQ5ZX78IPEJ2/uIU4Ht5fdn+DHQFcD7ZVM6ryU7iQjYdcy3wK7Ipl+2MbPrrILITuo8BG4Ef8ewfpsXALLLR/lXA+RFxQ4k+WJORvwDFqkFSC7AemDhgnt0GkPQ1squCzqt3WywtHuHbqEk6JZ/+mAx8Cview96scTnwrYx3kc013002//+e+jbHzPbGUzpmZonwCN/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDTUN9JPnTo1Zs2aVe9mmJk1lbVr1z4UEQcMtV5DBf6sWbPo6empdzPMzJqKpPuGs56ndMzMEuHANzNLhAPfzCwRDnwzs0Q48M3MEuHANzNLhAPfzCwRDnwzs0Q01AevzFIjaVTbRUSVW2IpcOCb1dHegltSUwf7aP+Ygf+gjRUHvpmNifH8x6xZeQ7fzCwRpQJf0jskbZD0jKS2AXXnStok6U5JJ5ZrppmZlVV2Smc98FbgX4qFkuYAi4AjgWnAGkmHR8SuksczM7NRKjXCj4iNEXFnhaqFwKqI2BER9wCbgGPLHMvMzMoZqzn86cDmwnJvXvYckpZI6pHU09fXV/WGSBr1w8xsPBlySkfSGuCgClUdEfHdwTarUFbxlHxErARWArS1tVX9tL2vFDAzywwZ+BGxYBT77QVmFpZnAFtGsR8zM6uSsZrSuRpYJGmipMOA2cCtY3QsMzMbhrKXZZ4iqRd4DfADSdcBRMQGYDVwO/AfwFJfoWNmVl+lLsuMiKuAqwapWwGsKLN/MzOrHn/S1swsEb6XjtkYmzJlCg8//PCoth3p5cGTJ09m69atozqWjUwz3hzOgW82xh5++OGa/Qf350dqpxkv+R4XUzpTpkwZ9QerRrPdlClT6txjM7ORGxcj/FqOoMCjKDNrTuNihG9mZkMbFyN8G7+a8cSYWaNy4De58R6IzXhizKxROfCbnAPRzIbLc/hmZolw4JuZJcKBb2aWCAe+mVkiHPhmZolw4JuZJcKBb2ajNt7vYzXe+ufr8M1s1Mb7fazGW/88wjczS4QD38wsEQ58q7vxNk9q1qg8h291N97mSQeK818Ky/er3bHMBlEq8CV9Bvhz4CngbuDsiHgkrzsXaAd2AedExHUl22rWlPTxx2r6FYexvCaHsiZUdkrnBqA1Io4CfgWcCyBpDrAIOBJ4I/AlSRNKHitZnvIws2ooNcKPiOsLi7cAb8+fLwRWRcQO4B5Jm4BjgZvLHC9V433Kw8xqo5onbf8auDZ/Ph3YXKjrzcueQ9ISST2Sevr6+qrYHDMzKxpyhC9pDXBQhaqOiPhuvk4H8DRwef9mFdavOESNiJXASoC2tjZ/W4eZ2RgZMvAjYsHe6iWdCbwFeH08O+/QC8wsrDYD2DLaRpo1u1pNk02ePLkmx7HmVPYqnTcCHwZOiIhthaqrgSskfRaYBswGbi1zLLNmNdrzL/6KSqu2stfhfwGYCNyQj2BuiYh3R8QGSauB28mmepZGxK6SxxpULa9z3n08M7Mmo0YaQbS1tUVPT8+It6v1SMjH8/FqoRnaOd5/ds1yPElrI6JtqPV8awUzs0Q48M3MEuHANzNLhAPfzCwRDnwzs0Q48M3MEuHANzNLhL8AxcxGzR96bC4OfDMbtVp+uQv4C17K8pSOmVkiHPhmZolw4JuZJcKBb2aWCJ+0Naujob4YZbD6Rr+LpjWmcRP4tfzibX+rkFWLg9tqaVwEvr9RyMxsaJ7DNzNLxLgY4ZuZjYXx9kliB76Z2SDG2yeJHfhWd+NtFGXWqBz4TWC8B+J4G0WZNapSgS/p74GFwDPA74CzImKLsmskPwecBGzLy39etrGpciCaWTWUvUrnMxFxVETMBb4PfCwvfxMwO38sAb5c8jhmZlZSqcCPiMcKiy8G+oehC4HLInMLsL+kg8scy8zMyik9hy9pBXAG8CgwPy+eDmwurNablz1QYfslZO8COOSQQ8o2x8zMBjHkCF/SGknrKzwWAkRER0TMBC4H3tu/WYVdVZyEjoiVEdEWEW0HHHDAaPthZmZDGHKEHxELhrmvK4AfAOeTjehnFupmAFtG3DozM6uaUnP4kmYXFk8G7sifXw2cocxxwKMR8ZzpHBs+STV7+OZwZuNT2Tn8CyQdQXZZ5n3Au/Pya8guydxEdlnm2SWPkzTfHM7MqqFU4EfE2wYpD2BpmX2bmVl1+W6ZZmaJcOCbmSXC99Ixs1L8bXPNw4FvZqPmCwqai6d0zMwS4RG+NQRPC1ijGk+/mw58qztPC1ijGm+/m57SMTNLhAPfzCwRDnwzs0R4Dt/MbBSGOpm7t/p6ze878M3MRqERT8oOxVM6ZmaJcOCbmSXCgW9mlggHvplZIhz4ZmaJcOCbmSXCgW9mlggHvplZIqoS+JI+KCkkTc2XJenzkjZJuk3Sq6pxHDMzG73SgS9pJvBnwG8KxW8CZuePJcCXyx7HzMzKqcYI/yLgQ0Dxc8YLgcsicwuwv6SDq3AsMzMbpVL30pF0MnB/RPxiwI2CpgObC8u9edkDZY43Gs14gyMzs7EwZOBLWgMcVKGqA/go8IZKm1Uoq5iekpaQTftwyCGHDNWcEXNom5llhgz8iFhQqVzSK4HDgP7R/Qzg55KOJRvRzyysPgPYMsj+VwIrAdra2pzOZmZjZNRz+BHxy4g4MCJmRcQsspB/VUQ8CFwNnJFfrXMc8GhE1Hw6x8zMnjVW98O/BjgJ2ARsA84eo+OYmdkwVS3w81F+//MAllZr32ZmVp4/aWtmlggHvplZIhz4ZmaJcOCbmSXCgW9mloixuizTasS3jjCz4XLgNzmHtpkNl6d0zMwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0tEqcCXtFzS/ZLW5Y+TCnXnStok6U5JJ5ZvqqVI0qCP4dSb2bOqcT/8iyLin4oFkuYAi4AjgWnAGkmHR8SuKhzPEuL7/ZtVz1hN6SwEVkXEjoi4B9gEHDtGxzIzs2GoRuC/V9Jtki6VNDkvmw5sLqzTm5eZmVmdDBn4ktZIWl/hsRD4MvByYC7wAHBh/2YVdlXxvbmkJZJ6JPX09fWNshtmZjaUIefwI2LBcHYk6V+B7+eLvcDMQvUMYMsg+18JrARoa2vzhK2Z2Rgpe5XOwYXFU4D1+fOrgUWSJko6DJgN3FrmWGZmVk7Zq3Q+LWku2XTNvcC7ACJig6TVwO3A08BSX6FjZlZfpQI/It65l7oVwIoy+zczs+rxJ23NzBLhwDczS4QD36zBdHZ20trayoQJE2htbaWzs7PeTRoV3xaj8VTj1gpmViWdnZ10dHRwySWXMG/ePLq7u2lvbwdg8eLFdW7dyPi2GI1HjfRDaWtri56enno3w6xuWltbufjii5k/f/7usq6uLpYtW8b69ev3sqWlTNLaiGgbcj0HvlnjmDBhAtu3b2efffbZXbZz504mTZrErl2+stkqG27gew7frIG0tLTQ3d29R1l3dzctLS11apGNJw58swbS0dFBe3s7XV1d7Ny5k66uLtrb2+no6Kh302wc8ElbswbSf2J22bJlbNy4kZaWFlasWNF0J2ytMXkO38ysyXkO38zM9uDANzNLhAPfzCwRDnwzs0Q48M3MEuHANzNLhAPfzCwRDnwzs0Q48M3MEuHANzNLhAPfzCwRpQNf0jJJd0raIOnThfJzJW3K604sexwzMyun1N0yJc0HFgJHRcQOSQfm5XOARcCRwDRgjaTDI8Lf4GBmVidlR/jvAS6IiB0AEfG7vHwhsCoidkTEPcAm4NiSxzIzsxLKBv7hwPGSfirpR5KOycunA5sL6/XmZc8haYmkHkk9fX19JZtjZmaDGXJKR9Ia4KAKVR359pOB44BjgNWSXgaowvoVb7wfESuBlZDdD394zTYzs5EaMvAjYsFgdZLeA3w7sm9RuVXSM8BUshH9zMKqM4AtJdtqZmYllJ3S+Q7wpwCSDgdeADwEXA0skjRR0mHAbODWkscyM7MSyn6n7aXApZLWA08BZ+aj/Q2SVgO3A08DS32FjplZfZUK/Ih4CvirQepWACvK7N/MzKrHn7Q1M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0tEqcCXdKWkdfnjXknrCnXnStok6U5JJ5ZvqpmZlfH8MhtHxGn9zyVdCDyaP58DLAKOBKYBayQdHhG7yhzPzMxGrypTOpIEnAp05kULgVURsSMi7gE2AcdW41hmZjY61ZrDPx74bUTclS9PBzYX6nvzsueQtERSj6Sevr6+KjXHzMwGGnJKR9Ia4KAKVR0R8d38+WKeHd0DqML6UWn/EbESWAnQ1tZWcR0zMytvyMCPiAV7q5f0fOCtwKsLxb3AzMLyDGDLaBpoZmbVUY0pnQXAHRHRWyi7GlgkaaKkw4DZwK1VOJaZmY1Sqat0covYczqHiNggaTVwO/A0sNRX6JiZ1VfpwI+IswYpXwGsKLt/MzOrDn/S1swsEQ58M7NEOPDNzBLhwDczq5LOzk5aW1uZMGECra2tdHZ2Dr1RDVXjKh0zs+R1dnbS0dHBJZdcwrx58+ju7qa9vR2AxYsX17l1GUU0zodb29raoqenp97NMDMbsdbWVi6++GLmz5+/u6yrq4tly5axfv36MT22pLUR0Tbkeg58M7PyJkyYwPbt29lnn312l+3cuZNJkyaxa9fYfgxpuIHvOXwzsypoaWmhu7t7j7Lu7m5aWlrq1KLncuCbmVVBR0cH7e3tdHV1sXPnTrq6umhvb6ejo6PeTdvNJ23NzKqg/8TssmXL2LhxIy0tLaxYsaJhTtiC5/DNzJqe5/DNzGwPDnwzs0Q48M3MEuHANzNLhAPfzCwRDXWVjqQ+4L4aHnIq8FANj1dr7l9zG8/9G899g9r379CIOGColRoq8GtNUs9wLmVqVu5fcxvP/RvPfYPG7Z+ndMzMEuHANzNLROqBv7LeDRhj7l9zG8/9G899gwbtX9Jz+GZmKUl9hG9mloxkAl/SExXKlku6X9I6SbdLapzb2uUqtbtQ9wtJnQPKjpP007xPGyUtz8v/UNL3821ul3RNYZsjJf1Q0q8k3SXp7yRpzDo1QpJ25f3pf3wkL79RUk9hvTZJN9atocNU/JlKOil/zQ/Jfx+3STpwkHVD0oWF5Q/2/3zrTdJBklZJurv/90vS4Xnd+yVtl7RfYf3XSXpU0n9LukPSP+XlZxd+zk9J+mX+/IJ69W0gSR2SNki6LW/btZI+OWCduZI25s/vlXTTgPp1ksb2a7AqiYgkHsATFcqWAx/Mn88GHgP2qXdbh2p3Xt4C/BK4H3hxofxO4Oj8+QRgTv78X4D3FdY7Kv/3hcDdwBvy5RcB1wJL6933YbwGNwK/Ad6UL7cBN9a7vcPtD/D6/LV/eb68PO/Ppyr1HdgO3ANMzZc/CCxvgP4IuBl4d6FsLnB8/vxW4CbgrEL964DvF34H7wD+94D93tvf10Z5AK/J+zoxX54KnAD8esB6FwB/V+jHOmBmvtySL6+vdfuTGeEPJSLuArYBk+vdlmH6S+DrwPXAyYXyA4EHACJiV0TcnpcfDPT2rxQRtxX285OIuD4v3wa8F/jImLa+ej4DnFfvRoyUpOOBfwXeHBF3F6ouBU6TNKXCZk+TnQx8fw2aOBLzgZ0R8ZX+gohYFxE3SXo5sC/Zz6jiO+iIeJIsAKfXorElHQw8FBE7ACLioYj4EfCIpD8urHcqsKqwvBo4LX++GNjjnXmtOPBzkl4F3BURv6t3W4bpNOBKsl+c4n+ki4A7JV0l6V2SJuXlXwQukdSVvyWdlpcfCawt7jgPoH0lvXRsuzBsLxwwpXNaoe5mYIek+YNt3IAmAt8F/iIi7hhQ9wRZ6L9vkG2/CJxenB5pAK0M+B0q6A+3m4AjitNV/SRNJnuH/eMxa2H1XA/MzKc/vyTphLy8E1gE2bQq8Pt8ENnvW8Bb8+d/DnyvVg0ucuDD+yXdCfyU7C11w5N0DNAXEfcB/wm8Kv9PQ0R8gmxq43qy0ft/5OXXAS8jG1X+EfDfkg4gezs+2KVajXIJ15MRMbfwuHJA/T/QXKP8ncB/Ae2D1H8eOLPSH9yIeAy4DDhn7JpXVYuAVRHxDPBt4B2FuuMl3QY8SDa982A9GjgSEfEE8GpgCdAHXCnpLLLR/NslPY+szwNH8FuBhyUtAjaSzSbUnAMfLoqII8hGzJcVRsSNbDHwR5LuJZsDfinwtv7KiLg7Ir5MNkd8tKQ/yMu3RsQVEfFO4GfAa4ENZH8gdpP0MrK548dr0ZmyIuKHwCTguHq3ZZieIXvLf4ykjw6sjIhHgCuA/zPI9v9M9sfixWPWwpHZQBaCe5B0FNnI/Yb8d3URe74bvSkijgJeCbxH0twatLW0fKr0xog4n2z6820RsZlsrv4Esv+LqytseiXZO7S6TOeAA3+3iPg20AOcWe+27E0+gngH2UnXWRExC1hI/h9J0psLV9jMBnaRzS/+qaQX5eu8BHg52QnCy4F5khbkdS8kG2F+una9qooVwIfq3Yjhys+VvIVseqbSSP+zwLuo8L3TEbGVLFAGe4dQaz8EJkr62/6C/F3o58hOKs/KH9OA6ZIOLW4cEb8CPgl8uJaNHg1JR0iaXSiay7M3fOwkm1K9OyJ6n7MxXEX2/+q6sW3l4FIK/BdJ6i08PlBhnU8AH8hDtVHs0W7g/wL3R8T9hXV+DMyRdDDwTrI5/HVkJ3VPj4hdZCOwnvwt9M3AVyPiZ/kJs4XAefnU1i/JRv9fqFkPhzZwDv85l+hFxDVkb7GbRh7cbyR77RcOqHuILCAmDrL5hWRXiNRdZJeenAL8WX5Z5gay6dHXkfWh6Cryue4BvgK8VtJhY9jUatgX+Pf80tPbgDk8OxX8TbJzYqsqbRgRj0fEpyLiqZq0tAJ/0tbMLBGNNJI1M7Mx5MA3M0uEA9/MLBEOfDOzRDjwzcwS4cA3M0uEA9/MLBEOfDOzRPx/JC7jWc8wILoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#评估算法——箱线图  箱线图 上面是10折交叉验证的均值方差，下面是所有10个结果画成的箱图\n",
    "fig = pyplot.figure()\n",
    "fig.suptitle('Algorithm Comparison')\n",
    "ax = fig.add_subplot(111)\n",
    "pyplot.boxplot(results)\n",
    "ax.set_xticklabels(models.keys())\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 优化模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 调参"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "code_folding": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "GridSearchCV(cv=KFold(n_splits=10, random_state=7, shuffle=False),\n",
      "       error_score='raise',\n",
      "       estimator=KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n",
      "          metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
      "          weights='uniform'),\n",
      "       fit_params=None, iid=True, n_jobs=1,\n",
      "       param_grid={'n_neighbors': [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]},\n",
      "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
      "       scoring='neg_mean_squared_error', verbose=0)\n",
      "最优：-18.1721369637 使用{'n_neighbors': 3}\n",
      "{'mean_fit_time': array([ 0.00110025,  0.00079992,  0.00040009,  0.00070002,  0.00090001,\n",
      "        0.00099845,  0.00069947,  0.00089912,  0.00059988,  0.00069916,\n",
      "        0.0004997 ]), 'std_fit_time': array([ 0.00053917,  0.00060047,  0.00049001,  0.00045827,  0.00030001,\n",
      "        0.00044537,  0.00045791,  0.00029971,  0.0004898 ,  0.00045771,\n",
      "        0.0004997 ]), 'mean_score_time': array([ 0.0019994 ,  0.00119898,  0.0011986 ,  0.00139873,  0.00259824,\n",
      "        0.00139992,  0.00129917,  0.00129926,  0.00139923,  0.00119927,\n",
      "        0.00139854]), 'std_score_time': array([ 0.00044912,  0.00039948,  0.0003989 ,  0.0004898 ,  0.00168445,\n",
      "        0.00049067,  0.00045777,  0.00045729,  0.00048958,  0.00039928,\n",
      "        0.00048942]), 'param_n_neighbors': masked_array(data = [1 3 5 7 9 11 13 15 17 19 21],\n",
      "             mask = [False False False False False False False False False False False],\n",
      "       fill_value = ?)\n",
      ", 'params': [{'n_neighbors': 1}, {'n_neighbors': 3}, {'n_neighbors': 5}, {'n_neighbors': 7}, {'n_neighbors': 9}, {'n_neighbors': 11}, {'n_neighbors': 13}, {'n_neighbors': 15}, {'n_neighbors': 17}, {'n_neighbors': 19}, {'n_neighbors': 21}], 'split0_test_score': array([ -9.45414634,  -6.77363144,  -7.59979512,  -8.88562967,\n",
      "        -7.71774767,  -8.37567627,  -9.26275653, -10.57145691,\n",
      "       -11.03084227, -11.00315249, -10.38657486]), 'split1_test_score': array([-19.19463415, -16.53116531, -21.67962927, -19.2452663 ,\n",
      "       -18.79735923, -16.56787341, -16.54970559, -16.17777995,\n",
      "       -17.62933243, -18.892437  , -19.64178696]), 'split2_test_score': array([-55.4004878 , -53.51219512, -52.29340488, -54.03601294,\n",
      "       -51.91782294, -52.33891554, -53.90356906, -52.85772791,\n",
      "       -53.58452781, -53.18935477, -55.22344727]), 'split3_test_score': array([-12.39463415, -21.00479675, -26.17108293, -24.7557989 ,\n",
      "       -22.53135501, -25.1780125 , -25.99869534, -26.84544065,\n",
      "       -29.23538189, -29.54720424, -28.38148996]), 'split4_test_score': array([-14.266     , -13.34075   , -15.43363   , -14.37328571,\n",
      "       -15.16407407, -16.22127479, -16.85160503, -19.09312556,\n",
      "       -21.52448702, -23.19383934, -23.49596315]), 'split5_test_score': array([-10.3665    , -14.67366667, -20.76347   , -24.12086735,\n",
      "       -23.71760494, -23.65689669, -23.24300444, -23.77942778,\n",
      "       -23.61674827, -26.90940374, -27.83761961]), 'split6_test_score': array([-21.993     , -17.21883333, -18.99422   , -18.3127449 ,\n",
      "       -19.38682716, -20.95741322, -18.78862574, -17.97907778,\n",
      "       -19.65442042, -21.11710873, -22.64375794]), 'split7_test_score': array([ -7.80575   ,  -8.50119444, -10.92403   , -12.67627041,\n",
      "       -13.28576235, -14.30482025, -14.06153846, -13.77404556,\n",
      "       -14.47092474, -15.18020914, -15.56794785]), 'split8_test_score': array([-41.008     , -22.39908333, -18.05431   , -18.63777551,\n",
      "       -19.37001235, -19.81797107, -19.48788905, -20.99011222,\n",
      "       -23.14071367, -25.14683449, -26.61354932]), 'split9_test_score': array([ -9.81325   ,  -7.13772222,  -8.71758   , -10.09931633,\n",
      "       -11.30679012, -12.21259711, -12.84300888, -13.00023222,\n",
      "       -13.50399481, -14.11056925, -13.41678798]), 'mean_test_score': array([-20.20866337, -18.17213696, -20.13116337, -20.57584512,\n",
      "       -20.36826366, -21.00920424, -21.15180854, -21.55739967,\n",
      "       -22.78993816, -23.87187296, -24.36136212]), 'std_test_score': array([ 15.02965157,  12.95056994,  12.20369693,  12.34588632,\n",
      "        11.62173792,  11.61001222,  11.94331789,  11.53633852,\n",
      "        11.56686064,  11.34038866,  11.91478571]), 'rank_test_score': array([ 3,  1,  2,  5,  4,  6,  7,  8,  9, 10, 11]), 'split0_train_score': array([ -0.        ,  -8.88581879, -13.28653333, -16.65609265,\n",
      "       -16.70877393, -17.93518703, -19.34657229, -19.4351274 ,\n",
      "       -20.89932788, -21.71663904, -22.8210925 ]), 'split1_train_score': array([ -0.        ,  -9.31153352, -13.39114601, -15.37624726,\n",
      "       -16.68993708, -17.66265055, -18.57282475, -19.72672788,\n",
      "       -20.79297664, -21.49929474, -22.253972  ]), 'split2_train_score': array([ -0.        ,  -8.03628405, -10.99388099, -13.36185641,\n",
      "       -14.67843247, -15.6027489 , -16.02052782, -16.9757266 ,\n",
      "       -18.02334725, -19.04422281, -19.75357546]), 'split3_train_score': array([ -0.        ,  -7.41995409, -12.04358567, -15.37405914,\n",
      "       -16.2689865 , -17.25018942, -17.36007172, -18.03957319,\n",
      "       -19.23169455, -20.23620361, -21.18122224]), 'split4_train_score': array([ -0.        ,  -8.00721001, -12.91770659, -15.97281678,\n",
      "       -16.79116741, -17.89629825, -18.69557839, -19.50908987,\n",
      "       -20.12034364, -20.91100537, -21.60973655]), 'split5_train_score': array([ -0.        ,  -9.2477381 , -13.34391099, -15.48070195,\n",
      "       -16.52095883, -18.04642358, -18.33692226, -19.2799359 ,\n",
      "       -20.20471225, -21.30467619, -22.21808103]), 'split6_train_score': array([ -0.        ,  -9.16475275, -13.08778462, -16.14669377,\n",
      "       -17.00879833, -18.39658977, -18.85830337, -19.61928242,\n",
      "       -20.78303339, -21.82105073, -22.5583613 ]), 'split7_train_score': array([ -0.        ,  -9.36897131, -13.38727143, -16.55973593,\n",
      "       -17.33030152, -18.37566933, -19.14157309, -19.72191893,\n",
      "       -20.56822094, -21.55235556, -22.67402924]), 'split8_train_score': array([ -0.        ,  -7.42261294, -12.43337473, -15.92136802,\n",
      "       -16.94383428, -17.81258015, -18.82138175, -19.95392442,\n",
      "       -21.1759007 , -22.3541243 , -23.00174254]), 'split9_train_score': array([ -0.        ,  -9.72328144, -13.97071868, -16.89334828,\n",
      "       -17.78831163, -18.72537485, -19.46620619, -19.86194921,\n",
      "       -20.56150681, -21.65144607, -22.70422759]), 'mean_train_score': array([  0.        ,  -8.6588157 , -12.8855913 , -15.77429202,\n",
      "       -16.6729502 , -17.77037118, -18.46199616, -19.21232558,\n",
      "       -20.2361064 , -21.20910184, -22.07760405]), 'std_train_score': array([ 0.        ,  0.81196626,  0.81175958,  0.95242714,  0.77731913,\n",
      "        0.8229432 ,  0.98977003,  0.90453815,  0.89822202,  0.89844774,\n",
      "        0.94131096])}\n",
      "<zip object at 0x0000026DBA34D508>\n",
      "-20.208663 (15.029652) with {'n_neighbors': 1}\n",
      "-18.172137 (12.950570) with {'n_neighbors': 3}\n",
      "-20.131163 (12.203697) with {'n_neighbors': 5}\n",
      "-20.575845 (12.345886) with {'n_neighbors': 7}\n",
      "-20.368264 (11.621738) with {'n_neighbors': 9}\n",
      "-21.009204 (11.610012) with {'n_neighbors': 11}\n",
      "-21.151809 (11.943318) with {'n_neighbors': 13}\n",
      "-21.557400 (11.536339) with {'n_neighbors': 15}\n",
      "-22.789938 (11.566861) with {'n_neighbors': 17}\n",
      "-23.871873 (11.340389) with {'n_neighbors': 19}\n",
      "-24.361362 (11.914786) with {'n_neighbors': 21}\n"
     ]
    }
   ],
   "source": [
    "# 网格搜索算法  调参——KNN     \n",
    "\n",
    "# fit  transform\n",
    "scaler = StandardScaler().fit(X_train)\n",
    "rescaledX = scaler.transform(X_train)\n",
    "\n",
    "param_grid = {'n_neighbors': [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]}\n",
    "model = KNeighborsRegressor()\n",
    "kfold = KFold(n_splits=num_folds, random_state=seed)\n",
    "\n",
    "# 网格搜索算法\n",
    "grid = GridSearchCV(estimator=model, param_grid=param_grid, scoring=scoring, cv=kfold)\n",
    "grid_result = grid.fit(X=rescaledX, y=Y_train)\n",
    "print(grid_result)\n",
    "print('最优：%s 使用%s' % (grid_result.best_score_, grid_result.best_params_))\n",
    "\n",
    "print(grid_result.cv_results_)\n",
    "cv_results = zip(grid_result.cv_results_['mean_test_score'],grid_result.cv_results_['std_test_score'],grid_result.cv_results_['params'])\n",
    "print(cv_results)\n",
    "\n",
    "for mean, std, param in cv_results:\n",
    "    print('%f (%f) with %r' % (mean, std, param))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最优结果——K近邻算法的默认参数近邻个数（n_neighbors）是3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 集成算法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    ScaledAB: -14.729143 (6.315653)\n",
      "ScaledAB-KNN: -15.902224 (10.378037)\n",
      " ScaledAB-LR: -24.575570 (10.124618)\n",
      "   ScaledRFR: -12.213231 (6.247711)\n",
      "   ScaledETR: -11.077000 (4.710833)\n",
      "   ScaledGBR: -10.269140 (4.530608)\n"
     ]
    }
   ],
   "source": [
    "# 集成算法\n",
    "# 除调参之外，提高模型准确度的方法是使用集成算法。\n",
    "# 下面会对表现比较好的线性回归、K近邻、分类与回归树算法进行集成，来看看算法能否提高。\n",
    "\n",
    "# 装袋算法：随机森林（RF）和极端随机树（ET）。 \n",
    "# 提升算法：AdaBoost（AB）和随机梯度上升（GBM）。\n",
    "\n",
    "#依然采用和前面同样的评估框架和正态化之后的数据来分析相关的算法。代码如下：\n",
    "\n",
    "\n",
    "ensembles = {}\n",
    "ensembles['ScaledAB'] = Pipeline([('Scaler',StandardScaler()), ('AB', AdaBoostRegressor())])\n",
    "ensembles['ScaledAB-KNN'] = Pipeline([('Scaler', StandardScaler()), ('ABKNN', AdaBoostRegressor(base_estimator= KNeighborsRegressor(n_neighbors=3)))])\n",
    "ensembles['ScaledAB-LR'] = Pipeline([('Scaler', StandardScaler()), ('ABLR',AdaBoostRegressor(LinearRegression()))])\n",
    "ensembles['ScaledRFR'] = Pipeline([('Scaler', StandardScaler()), ('RFR', RandomForestRegressor())])\n",
    "ensembles['ScaledETR'] = Pipeline([('Scaler', StandardScaler()), ('ETR', ExtraTreesRegressor())])\n",
    "ensembles['ScaledGBR'] = Pipeline([('Scaler', StandardScaler()), ('RBR', GradientBoostingRegressor())])\n",
    "\n",
    "results = []\n",
    "for key in ensembles:\n",
    "    kfold = KFold(n_splits=num_folds, random_state=seed)\n",
    "    cv_result = cross_val_score(ensembles[key], X_train, Y_train, cv=kfold, scoring=scoring)\n",
    "    results.append(cv_result)\n",
    "    print('%12s: %f (%f)' % (key, cv_result.mean(), cv_result.std()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 集成算法——集成算法在10折交叉验证中均方误差的分布状况\n",
    "# 箱线图   上面是10折交叉验证的均值方差(最终结果)，下面是所有10个结果画成的箱图（每个具体的分布）\n",
    "fig = pyplot.figure()\n",
    "fig.suptitle('Algorithm Comparison')\n",
    "ax = fig.add_subplot(111)\n",
    "pyplot.boxplot(results)\n",
    "ax.set_xticklabels(ensembles.keys())\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最优：-9.24928559386 使用{'n_estimators': 800}\n",
      "最优：-9.20539812871 使用{'n_estimators': 50}\n"
     ]
    }
   ],
   "source": [
    "# 下面对随机梯度上升（GBM）和极端随机树（ET）算法进行调参，再次比较这两个算法模型的准确度，来确定最终的算法模型\n",
    "\n",
    "# 集成算法GBM——调参  \n",
    "\n",
    "# fit  transform\n",
    "caler = StandardScaler().fit(X_train)\n",
    "rescaledX = scaler.transform(X_train)\n",
    "\n",
    "param_grid = {'n_estimators': [10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900]}\n",
    "model = GradientBoostingRegressor()\n",
    "kfold = KFold(n_splits=num_folds, random_state=seed)\n",
    "grid = GridSearchCV(estimator=model, param_grid=param_grid, scoring=scoring, cv=kfold)\n",
    "\n",
    "grid_result = grid.fit(X=rescaledX, y=Y_train)\n",
    "print('最优：%s 使用%s' % (grid_result.best_score_, grid_result.best_params_))\n",
    "\n",
    "\n",
    "# 集成算法ET——调参\n",
    "\n",
    "# fit  transform\n",
    "scaler = StandardScaler().fit(X_train)\n",
    "rescaledX = scaler.transform(X_train)\n",
    "\n",
    "param_grid = {'n_estimators': [5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]}\n",
    "model = ExtraTreesRegressor()\n",
    "kfold = KFold(n_splits=num_folds, random_state=seed)\n",
    "grid = GridSearchCV(estimator=model, param_grid=param_grid, scoring=scoring, cv=kfold)\n",
    "\n",
    "grid_result = grid.fit(X=rescaledX, y=Y_train)\n",
    "print('最优：%s 使用%s' % (grid_result.best_score_, grid_result.best_params_))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6) 结果部署"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "code_folding": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ExtraTreesRegressor(bootstrap=False, criterion='mse', max_depth=None,\n",
       "          max_features='auto', max_leaf_nodes=None,\n",
       "          min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "          min_samples_leaf=1, min_samples_split=2,\n",
       "          min_weight_fraction_leaf=0.0, n_estimators=80, n_jobs=1,\n",
       "          oob_score=False, random_state=None, verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 确定最终模型\n",
    "# 我们已经确定了使用极端随机树（ET）算法来生成模型，下面就对该算法进行训练和生成模型，并计算模型的准确度。\n",
    "\n",
    "#训练模型\n",
    "caler = StandardScaler().fit(X_train)\n",
    "rescaledX = scaler.transform(X_train)\n",
    "gbr = ExtraTreesRegressor(n_estimators=80)\n",
    "gbr.fit(X=rescaledX, y=Y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13.1892927543\n"
     ]
    }
   ],
   "source": [
    "# 评估算法模型\n",
    "rescaledX_validation = scaler.transform(X_validation)\n",
    "predictions = gbr.predict(rescaledX_validation)\n",
    "print(mean_squared_error(Y_validation, predictions))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
